package com.ming.luckyDemo.service;

import com.ming.luckyDemo.pojo.DO.UserInfoDO;
import com.ming.luckyDemo.pojo.TDO.BetDTO;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * @author Tcm
 */
public interface QueryLuckyService {
    /**
     * 计算出每个开奖结果的总下注金额，并计算出每两个相对的结果抵消后的值
     * @param numbers
     * @return
     */
    BetDTO setBetDTO(int numbers);

    /**
     * 二次登录
     * @param cookieName
     * @return
     */
    UserInfoDO login2(@RequestParam String cookieName);

    /**
     * 未用到，思路不通
     * @param dto
     */
    void setLucky(BetDTO dto);

    /**
     * 计算比较每个开奖结果的收益值 返回一个长度为六位的数组
     * [最优解（a），次之（b），再次之（c），a为结果的收益值，b为结果的收益值，c为结果的收益值]
     * 这里我取得是 b 作为结果存入数据库
     * @param dto
     * @return
     */
    double[] seekLucky(BetDTO dto);

    /**
     * 得到一个随机三位数
     */
    String getRandom();

    /**
     * 如果有有效下注单影响则选择对网站第二有利的开奖结果存入数据库
     * 如果没有有效下注单，则随机生成一个开奖结果
     * @param numbers
     * @param lucky
     */
    void saveLucky(int numbers, String lucky);

    /**
     * 查询开奖结果Lucky与用户注单比对，进行”兑奖“
     * @param username
     * @param numbers
     */
    void updateBalance(String username,int numbers);

    List<String> getName();
}
